package javaCode.chapter14.homework;

import org.junit.jupiter.api.Test;

import java.util.List;

/**
 * @author 徐州城
 * @version 1.0
 */
public class Homework01 {
    public static void main(String[] args) {

    }

    @Test
    public void testList(){
        //说明
        //这里我们给 T指定了是User
        DAO<User> dao = new DAO<>();
        dao.save("001",new User(1, 18, "jack"));
        dao.save("002",new User(2, 20, "king"));
        dao.save("003",new User(3, 34, "smith"));

        List<User> list = dao.list();
        System.out.println("list=" + list);

        dao.update("003", new User(3,19, "sk"));
        List<User> list1 = dao.list();
        System.out.println("list=" + list1);
    }
}

/**
 * 定义一个泛型类 DAO<T>，在其中定义一个Map 成员变量，Map的键为 String类型，值为T类型
 * 分别创建一下方法：
 * 1. public void save(String id,T entity)：保存 T类型到对象 Map成员变量中
 * 2. public T get(String id)：从map中获取 id对应的对象
 * 3. public void update(String id, T entity)：替换 map中 key为id的内容，改为entity对象
 * 4. public List<T> list()：返回 map中存放的所有 T对象
 * 5. public void delete(String id)：删除指定 id 对象
 *
 * 定义一个 User 类：
 * 该类包含：private成员变量 (int类型) id, age; (String 类型) name;
 *
 * 创建 DAO类的对象，分别调用其 save、get、update、delete 方法来操作 User对象，使用 Junit 单元测试类进行测试
 *
 * 思路分析
 * 1. 定义User
 */

